<!DOCTYPE html>
<html>

  <head>
    <title>Projects Overview</title>
    <style>
      .descriptionColumn { min-width:550px;}
      em{color:red;font-weight: bold;}
      importantLink {font-size:10pt; font-family: "Verdana","sans-serif" color:black;}
      article{border: 1px solid #828282;margin: 20px 0px 20px 9px;}
      body{font-family: Verdana;font-size: 10pt; color: black;margin-left: 40px;}
      .picture{text-align: center}
      .copyright{text-align: center}
      h1{text-align: center;font-size: 20pt; font-family: Verdana; color: rgb(51, 102, 255);}
    </style>
  </head>
  <body>

    <h1>STM32CubeWL3x Firmware Examples for STM32WL3x Series</h1>

    <p class="copyright">Copyright 2024 STMicroelectronics</p>

    <div class="picture">
      <img alt="" id="_x0000_i1025" src="../_htmresc/st_logo_2020.png" style="border: 0px solid ; width: 104px; height: 77px;"/>
    </div>

    <p>The STM32CubeWL3x Firmware package comes with a rich set of examples running on STMicroelectronics boards, organized by board and provided with preconfigured projects for the main supported toolchains.</p>

    <div class="picture">
      <img alt="" src="../_htmresc/STM32Cube_2020.bmp"/>
    </div>

    <p>The examples are classified depending on the STM32Cube level they apply to, and are named as follows:</p>

    <ul>
      <li id="Examples"><b>Examples</b> uses only the HAL and BSP drivers (Middleware not used), having as objective to demonstrate the product/peripherals features and usage. The examples are organized per peripheral (a folder for each peripheral, ex. TIM) and offers different complexity level from basic usage of a given peripheral (ex. PWM generation using timer) till integration of several peripherals(use DAC for signals generation with synchronization from TIM6 and DMA). Board resources usage is reduced to the strict minimum.</li>
      <li id="Examples_LL"><b>Examples_LL</b> uses only the LL drivers (HAL and Middleware not used), offering optimum implementation of typical use cases of the peripheral features and configuration procedures. The examples are organized per peripheral (a folder for each peripheral, ex. TIM) and runs exclusively on Nucleo board.</li>
      <li id="Examples_MIX"><b>Examples_MIX</b> uses only HAL, BSP and LL drivers (Middleware are not used), having as objective to demonstrate how to use both HAL and LL APIs in the same application, to combine the advantages of both APIs (HAL offers high level and functionalities oriented APIs, with high portability level and hide product or IPs complexity to end user. While LL offers low level APIs at registers level with better optimization). The examples are organized per peripheral (a folder for each peripheral, ex. TIM) and runs exclusively on Nucleo board.</li>
      <li id="Applications"><b>Applications</b> intends to demonstrate the product performance and how to use the different Middleware stacks available. The Applications are organized per Middleware (a folder for each Middleware, ex. USB Host) or product feature that need high level firmware bricks (ex. Audio). Integration Applications that use several Middleware stacks are provided as well.</li>
      <li id="Demonstrations"><b>Demonstrations</b> aims to integrate and run the maximum of peripherals and Middleware stacks to showcase the product features and performance.</li>
      <li>A Template project is provided to allow user to quickly build any firmware application on a given board.</li>
    </ul>

    <p>The examples are located under STM32Cube_FW_WL3x_VX.Y.Z\Projects\, and all of them have the same structure:</p>

    <ul>
      <li>\Inc folder that contains all header files.</li>
      <li>\Src folder for the sources code.</li>
      <li>\EWARM, \MDK-ARM and \STM32CubeIDE folders contain the preconfigured project for each toolchain.</li>
      <li>A readme describing the example behavior and the environment required to run the example.</li>
    </ul>

    <p>To run the example, you have to do the following:</p>

    <ul>
      <li>Open the example using your preferred toolchain.</li>
      <li>Rebuild all files and load the image into target memory.</li>
      <li>Run the example by following the readme instructions.</li>
      <li>
        <i><u>Note</u>: refer to section "Development Toolchains and Compilers" and "Supported Devices and EVAL, Nucleo and Discovery boards" of the Firmware package release notes to know about the SW/HW environment used for the Firmware development and validation. The correct operation of the provided examples is not guaranteed on some environments, for example when using different compiler or board versions.</i>
      </li>
    </ul>

    <p>The provided examples can be tailored to run on any compatible hardware; user simply need to update the BSP drivers for his board, if it has the same hardware functions (LED, LCD display, pushbuttons...etc.). The BSP is based on a modular architecture that allows it to be ported easily to any hardware by just implementing the low level routines.</p>

    <p>
      <div>The table below contains the list of examples provided within STM32Cube_FW_WL3x Firmware package.</div>
      <div>In this table, the label <b>CubeMX</b> means the projects have been created using <a href="https://www.st.com/en/development-tools/stm32cubemx.html" target="_blank">STM32CubeMX</a>, the STM32Cube initialization code generator. Those projects can be opened with this tools to modify the projects itself. The others projects are manually created to demonstrate the product features.</div>
    </p>

    <p id="STM32WL3xImportantLink"></p>
		<table border='1' bgcolor='#f0f0fF' >
			<tr align=center style="background-repeat: no-repeat;background-position: right center;background-color: #39A9DC;color: #FFF;">
				<td><b>Level</b></td>
				<td><b>Module Name</b></td>
				<td><b>Project Name</b></td>
				<td class="descriptionColumn"><b>Description</b></td>
				<td><b>Overall</b></td>
				<td><b>Unique</b></td>
				<td>NUCLEO-WL33CC</td>
			</tr>
      <tr align=center>
        <td style="background-repeat: no-repeat;background-position: right center;background-color: #39A9DC;color: #FFF;" rowspan=2><p id="Templates">Templates</p></td>
        <td align=left rowspan=1><p id="-">-</p></td>
        <td align=left><p id="Starter project">Starter project</p></td>
        <td align=left>
- This project provides a reference template based on the STM32Cube HAL API that can be used
to build any firmware application.
</td>
        <td style="background-repeat: no-repeat;background-position: right center;background-color: #39A9DC;color: #FFF;" align=center>1</td>
        <td style="background-repeat: no-repeat;background-position: right center;background-color: #39A9DC;color: #FFF;" align=center></td>
        <td><font size="5" color=green>CubeMx</font></td>
      </tr>
      <tr style="background-repeat: no-repeat;background-position: right center;background-color: #39A9DC;color: #FFF;" align=center>
        <td colspan="3"><b>Total number of templates</b></td><td>1</td>
        <td>1</td>
        <td>1</td>
      </tr>
      <tr align=center>
        <td style="background-repeat: no-repeat;background-position: right center;background-color: #39A9DC;color: #FFF;" rowspan=2><p id="Templates_LL">Templates_LL</p></td>
        <td align=left rowspan=1><p id="-">-</p></td>
        <td align=left><p id="Starter project">Starter project</p></td>
        <td align=left>
- This project provides a reference template based on the STM32Cube LL API that can be used
to build any firmware application.
</td>
        <td style="background-repeat: no-repeat;background-position: right center;background-color: #39A9DC;color: #FFF;" align=center>1</td>
        <td style="background-repeat: no-repeat;background-position: right center;background-color: #39A9DC;color: #FFF;" align=center></td>
        <td><font size="5" color=green>CubeMx</font></td>
      </tr>
      <tr style="background-repeat: no-repeat;background-position: right center;background-color: #39A9DC;color: #FFF;" align=center>
        <td colspan="3"><b>Total number of templates_ll</b></td><td>1</td>
        <td>1</td>
        <td>1</td>
      </tr>
      <tr align=center>
        <td style="background-repeat: no-repeat;background-position: right center;background-color: #39A9DC;color: #FFF;" rowspan=58><p id="Examples">Examples</p></td>
        <td align=left rowspan=3><p id="ADC">ADC</p></td>
        <td align=left><p id="ADC_AnalogWatchdog">ADC_AnalogWatchdog</p></td>
        <td align=left>
How to use an ADC peripheral with an ADC analog watchdog to monitor a channel
and detect when the corresponding conversion data is outside the window
thresholds.
</td>
        <td style="background-repeat: no-repeat;background-position: right center;background-color: #39A9DC;color: #FFF;" align=center>1</td>
        <td style="background-repeat: no-repeat;background-position: right center;background-color: #39A9DC;color: #FFF;" align=center></td>
        <td><font size="5" color=green>CubeMx</font></td>
      </tr>
      <tr align=center>
        <td align=left><p id="ADC_MultiChannelSingleConversion">ADC_MultiChannelSingleConversion</p></td>
        <td align=left>
How to use an ADC peripheral to convert several channels. ADC conversions are 
performed successively in a scan sequence.
</td>
        <td style="background-repeat: no-repeat;background-position: right center;background-color: #39A9DC;color: #FFF;" align=center>1</td>
        <td style="background-repeat: no-repeat;background-position: right center;background-color: #39A9DC;color: #FFF;" align=center></td>
        <td><font size="5" color=green>CubeMx</font></td>
      </tr>
      <tr align=center>
        <td align=left><p id="ADC_SingleConversion_TriggerSW_IT">ADC_SingleConversion_TriggerSW_IT</p></td>
        <td align=left>
How to use ADC to convert a single channel at each SW start,
conversion performed using programming model: interrupt.
</td>
        <td style="background-repeat: no-repeat;background-position: right center;background-color: #39A9DC;color: #FFF;" align=center>1</td>
        <td style="background-repeat: no-repeat;background-position: right center;background-color: #39A9DC;color: #FFF;" align=center></td>
        <td><font size="5" color=green>CubeMx</font></td>
      </tr>
      <tr align=center>
        <td align=left rowspan=1><p id="COMP">COMP</p></td>
        <td align=left><p id="COMP_CompareGpioVsVrefInt_IT">COMP_CompareGpioVsVrefInt_IT</p></td>
        <td align=left>
How to use a comparator peripheral to compare a voltage level applied on
a GPIO pin to the internal voltage reference (VrefInt), in interrupt mode.
</td>
        <td style="background-repeat: no-repeat;background-position: right center;background-color: #39A9DC;color: #FFF;" align=center>1</td>
        <td style="background-repeat: no-repeat;background-position: right center;background-color: #39A9DC;color: #FFF;" align=center></td>
        <td><font size="5" color=green>CubeMx</font></td>
      </tr>
      <tr align=center>
        <td align=left rowspan=2><p id="CORTEX">CORTEX</p></td>
        <td align=left><p id="CORTEXM_ModePrivilege">CORTEXM_ModePrivilege</p></td>
        <td align=left>
How to modify the Thread mode privilege access and stack. Thread mode is entered
on reset or when returning from an exception.
</td>
        <td style="background-repeat: no-repeat;background-position: right center;background-color: #39A9DC;color: #FFF;" align=center>1</td>
        <td style="background-repeat: no-repeat;background-position: right center;background-color: #39A9DC;color: #FFF;" align=center></td>
        <td><font size="5" color=green>CubeMx</font></td>
      </tr>
      <tr align=center>
        <td align=left><p id="CORTEXM_SysTick">CORTEXM_SysTick</p></td>
        <td align=left>
How to use the default SysTick configuration with a 1 ms timebase to toggle LEDs.
</td>
        <td style="background-repeat: no-repeat;background-position: right center;background-color: #39A9DC;color: #FFF;" align=center>1</td>
        <td style="background-repeat: no-repeat;background-position: right center;background-color: #39A9DC;color: #FFF;" align=center></td>
        <td><font size="5" color=green>CubeMx</font></td>
      </tr>
      <tr align=center>
        <td align=left rowspan=3><p id="CRC">CRC</p></td>
        <td align=left><p id="CRC_Data_Reversing_16bit_CRC">CRC_Data_Reversing_16bit_CRC</p></td>
        <td align=left>
How to configure the CRC using the HAL API. The CRC (cyclic
redundancy check) calculation unit computes a 16-bit CRC code derived from a
buffer of 32-bit data (words). Input and output data reversal features are
enabled. The user-defined generating polynomial is manually set to 0x1021,
that is, X^16 + X^12 + X^5 + 1 which is the CRC-CCITT generating polynomial.
</td>
        <td style="background-repeat: no-repeat;background-position: right center;background-color: #39A9DC;color: #FFF;" align=center>1</td>
        <td style="background-repeat: no-repeat;background-position: right center;background-color: #39A9DC;color: #FFF;" align=center></td>
        <td><font size="5" color=green>CubeMx</font></td>
      </tr>
      <tr align=center>
        <td align=left><p id="CRC_Example">CRC_Example</p></td>
        <td align=left>
How to configure the CRC using the HAL API. The CRC (cyclic
redundancy check) calculation unit computes the CRC code of a given buffer of
32-bit data words, using a fixed generator polynomial (0x4C11DB7).
</td>
        <td style="background-repeat: no-repeat;background-position: right center;background-color: #39A9DC;color: #FFF;" align=center>1</td>
        <td style="background-repeat: no-repeat;background-position: right center;background-color: #39A9DC;color: #FFF;" align=center></td>
        <td><font size="5" color=green>CubeMx</font></td>
      </tr>
      <tr align=center>
        <td align=left><p id="CRC_UserDefinedPolynomial">CRC_UserDefinedPolynomial</p></td>
        <td align=left>
How to configure the CRC using the HAL API. The CRC (cyclic
redundancy check) calculation unit computes the 8-bit CRC code for a given
buffer of 32-bit data words, based on a user-defined generating polynomial.
</td>
        <td style="background-repeat: no-repeat;background-position: right center;background-color: #39A9DC;color: #FFF;" align=center>1</td>
        <td style="background-repeat: no-repeat;background-position: right center;background-color: #39A9DC;color: #FFF;" align=center></td>
        <td><font size="5" color=green>CubeMx</font></td>
      </tr>
      <tr align=center>
        <td align=left rowspan=3><p id="CRYP">CRYP</p></td>
        <td align=left><p id="CRYP_AESModes">CRYP_AESModes</p></td>
        <td align=left>
How to use the CRYP peripheral to encrypt and decrypt data using AES in chaining
modes (ECB, CBC, CTR).
</td>
        <td style="background-repeat: no-repeat;background-position: right center;background-color: #39A9DC;color: #FFF;" align=center>1</td>
        <td style="background-repeat: no-repeat;background-position: right center;background-color: #39A9DC;color: #FFF;" align=center></td>
        <td><font size="5" color=green>CubeMx</font></td>
      </tr>
      <tr align=center>
        <td align=left><p id="CRYP_AES_GCM">CRYP_AES_GCM</p></td>
        <td align=left>
How to use the CRYPTO peripheral to encrypt and decrypt data using AES with
Galois/Counter mode (GCM).
</td>
        <td style="background-repeat: no-repeat;background-position: right center;background-color: #39A9DC;color: #FFF;" align=center>1</td>
        <td style="background-repeat: no-repeat;background-position: right center;background-color: #39A9DC;color: #FFF;" align=center></td>
        <td><font size="5" color=green>CubeMx</font></td>
      </tr>
      <tr align=center>
        <td align=left><p id="CRYP_DMA">CRYP_DMA</p></td>
        <td align=left>
How to use the AES peripheral to encrypt and decrypt data using AES 128
Algorithm with ECB chaining mode in DMA mode.
</td>
        <td style="background-repeat: no-repeat;background-position: right center;background-color: #39A9DC;color: #FFF;" align=center>1</td>
        <td style="background-repeat: no-repeat;background-position: right center;background-color: #39A9DC;color: #FFF;" align=center></td>
        <td><font size="5" color=green>CubeMx</font></td>
      </tr>
      <tr align=center>
        <td align=left rowspan=1><p id="DAC">DAC</p></td>
        <td align=left><p id="DAC_SignalsGeneration">DAC_SignalsGeneration</p></td>
        <td align=left>
How to use the DAC peripheral to generate several signals using the DMA
controller and the DAC internal wave generator.
</td>
        <td style="background-repeat: no-repeat;background-position: right center;background-color: #39A9DC;color: #FFF;" align=center>1</td>
        <td style="background-repeat: no-repeat;background-position: right center;background-color: #39A9DC;color: #FFF;" align=center></td>
        <td><font size="5" color=green>CubeMx</font></td>
      </tr>
      <tr align=center>
        <td align=left rowspan=1><p id="DMA">DMA</p></td>
        <td align=left><p id="DMA_RAMToRAM">DMA_RAMToRAM</p></td>
        <td align=left>
How to use a DMA to transfer a word data buffer from embedded SRAM to embedded SRAM through the HAL API.
</td>
        <td style="background-repeat: no-repeat;background-position: right center;background-color: #39A9DC;color: #FFF;" align=center>1</td>
        <td style="background-repeat: no-repeat;background-position: right center;background-color: #39A9DC;color: #FFF;" align=center></td>
        <td><font size="5" color=green>CubeMx</font></td>
      </tr>
      <tr align=center>
        <td align=left rowspan=2><p id="FLASH">FLASH</p></td>
        <td align=left><p id="FLASH_EraseProgram">FLASH_EraseProgram</p></td>
        <td align=left>
How to configure and use the FLASH HAL API to erase and program the internal

At the beginning of the main program the HAL_Init() function is called to reset
all the peripherals, initialize the Flash interface and the systick.
</td>
        <td style="background-repeat: no-repeat;background-position: right center;background-color: #39A9DC;color: #FFF;" align=center>1</td>
        <td style="background-repeat: no-repeat;background-position: right center;background-color: #39A9DC;color: #FFF;" align=center></td>
        <td><font size="5" color=green>CubeMx</font></td>
      </tr>
      <tr align=center>
        <td align=left><p id="FLASH_WriteProtection">FLASH_WriteProtection</p></td>
        <td align=left>
How to configure and use the FLASH HAL API to enable and disable the write
protection of the internal Flash memory.
</td>
        <td style="background-repeat: no-repeat;background-position: right center;background-color: #39A9DC;color: #FFF;" align=center>1</td>
        <td style="background-repeat: no-repeat;background-position: right center;background-color: #39A9DC;color: #FFF;" align=center></td>
        <td><font size="5" color=green>CubeMx</font></td>
      </tr>
      <tr align=center>
        <td align=left rowspan=2><p id="GPIO">GPIO</p></td>
        <td align=left><p id="GPIO_EXTI">GPIO_EXTI</p></td>
        <td align=left>
How to configure external interrupt lines.
</td>
        <td style="background-repeat: no-repeat;background-position: right center;background-color: #39A9DC;color: #FFF;" align=center>1</td>
        <td style="background-repeat: no-repeat;background-position: right center;background-color: #39A9DC;color: #FFF;" align=center></td>
        <td><font size="5" color=green>CubeMx</font></td>
      </tr>
      <tr align=center>
        <td align=left><p id="GPIO_IOToggle">GPIO_IOToggle</p></td>
        <td align=left>
How to configure and use GPIOs through the HAL API.
</td>
        <td style="background-repeat: no-repeat;background-position: right center;background-color: #39A9DC;color: #FFF;" align=center>1</td>
        <td style="background-repeat: no-repeat;background-position: right center;background-color: #39A9DC;color: #FFF;" align=center></td>
        <td><font size="5" color=green>CubeMx</font></td>
      </tr>
      <tr align=center>
        <td align=left rowspan=3><p id="HAL">HAL</p></td>
        <td align=left><p id="HAL_TimeBase">HAL_TimeBase</p></td>
        <td align=left>
How to customize HAL using a general-purpose timer as main source of time base,
instead of Systick.
</td>
        <td style="background-repeat: no-repeat;background-position: right center;background-color: #39A9DC;color: #FFF;" align=center>1</td>
        <td style="background-repeat: no-repeat;background-position: right center;background-color: #39A9DC;color: #FFF;" align=center></td>
        <td><font size="5" color=green>CubeMx</font></td>
      </tr>
      <tr align=center>
        <td align=left><p id="HAL_TimeBase_RTC_WKUP">HAL_TimeBase_RTC_WKUP</p></td>
        <td align=left>
How to customize HAL using RTC wakeup as main source of time base, 
instead of Systick.
</td>
        <td style="background-repeat: no-repeat;background-position: right center;background-color: #39A9DC;color: #FFF;" align=center>1</td>
        <td style="background-repeat: no-repeat;background-position: right center;background-color: #39A9DC;color: #FFF;" align=center></td>
        <td><font size="5" color=green>CubeMx</font></td>
      </tr>
      <tr align=center>
        <td align=left><p id="HAL_TimeBase_TIM">HAL_TimeBase_TIM</p></td>
        <td align=left>
How to customize HAL using a general-purpose timer as main source of time base 
instead of Systick.
</td>
        <td style="background-repeat: no-repeat;background-position: right center;background-color: #39A9DC;color: #FFF;" align=center>1</td>
        <td style="background-repeat: no-repeat;background-position: right center;background-color: #39A9DC;color: #FFF;" align=center></td>
        <td><font size="5" color=green>CubeMx</font></td>
      </tr>
      <tr align=center>
        <td align=left rowspan=3><p id="I2C">I2C</p></td>
        <td align=left><p id="I2C_TwoBoards_AdvComIT">I2C_TwoBoards_AdvComIT</p></td>
        <td align=left>
How to handle several I2C data buffer transmission/reception between
a master and a slave device, using an interrupt.
</td>
        <td style="background-repeat: no-repeat;background-position: right center;background-color: #39A9DC;color: #FFF;" align=center>1</td>
        <td style="background-repeat: no-repeat;background-position: right center;background-color: #39A9DC;color: #FFF;" align=center></td>
        <td><font size="5" color=green>CubeMx</font></td>
      </tr>
      <tr align=center>
        <td align=left><p id="I2C_TwoBoards_ComDMA">I2C_TwoBoards_ComDMA</p></td>
        <td align=left>
How to handle I2C data buffer transmission/reception between two boards, 
via DMA.
</td>
        <td style="background-repeat: no-repeat;background-position: right center;background-color: #39A9DC;color: #FFF;" align=center>1</td>
        <td style="background-repeat: no-repeat;background-position: right center;background-color: #39A9DC;color: #FFF;" align=center></td>
        <td><font size="5" color=green>CubeMx</font></td>
      </tr>
      <tr align=center>
        <td align=left><p id="I2C_TwoBoards_ComIT">I2C_TwoBoards_ComIT</p></td>
        <td align=left>
How to handle I2C data buffer transmission/reception between two boards, 
using an interrupt.
</td>
        <td style="background-repeat: no-repeat;background-position: right center;background-color: #39A9DC;color: #FFF;" align=center>1</td>
        <td style="background-repeat: no-repeat;background-position: right center;background-color: #39A9DC;color: #FFF;" align=center></td>
        <td><font size="5" color=green>CubeMx</font></td>
      </tr>
      <tr align=center>
        <td align=left rowspan=2><p id="IWDG">IWDG</p></td>
        <td align=left><p id="IWDG_Reset">IWDG_Reset</p></td>
        <td align=left>
How to handle the IWDG reload counter and simulate a software fault that generates
an MCU IWDG reset after a preset laps of time.
</td>
        <td style="background-repeat: no-repeat;background-position: right center;background-color: #39A9DC;color: #FFF;" align=center>1</td>
        <td style="background-repeat: no-repeat;background-position: right center;background-color: #39A9DC;color: #FFF;" align=center></td>
        <td><font size="5" color=green>CubeMx</font></td>
      </tr>
      <tr align=center>
        <td align=left><p id="IWDG_WindowMode">IWDG_WindowMode</p></td>
        <td align=left>
How to periodically update the IWDG reload counter and simulate a software fault that generates
an MCU IWDG reset after a preset laps of time.
</td>
        <td style="background-repeat: no-repeat;background-position: right center;background-color: #39A9DC;color: #FFF;" align=center>1</td>
        <td style="background-repeat: no-repeat;background-position: right center;background-color: #39A9DC;color: #FFF;" align=center></td>
        <td><font size="5" color=green>CubeMx</font></td>
      </tr>
      <tr align=center>
        <td align=left rowspan=1><p id="LPAWUR">LPAWUR</p></td>
        <td align=left><p id="LPAWUR_Skeleton">LPAWUR_Skeleton</p></td>
        <td align=left>
Code demonstrating the basic project structure template with initialization framework to be used for building a LPAWUR radio example application.
</td>
        <td style="background-repeat: no-repeat;background-position: right center;background-color: #39A9DC;color: #FFF;" align=center>1</td>
        <td style="background-repeat: no-repeat;background-position: right center;background-color: #39A9DC;color: #FFF;" align=center></td>
        <td><font size="5" color=green>CubeMx</font></td>
      </tr>
      <tr align=center>
        <td align=left rowspan=12><p id="MRSUBG">MRSUBG</p></td>
        <td align=left><p id="MRSUBG_802_15_4_Rx">MRSUBG_802_15_4_Rx</p></td>
        <td align=left>
This is a demo implementation of the standard 802.15.4 protocol. It takes in account the physical defined by the standard. The example shows how to configure the packets in order to transmit or receive 802.15.4 packets.
</td>
        <td style="background-repeat: no-repeat;background-position: right center;background-color: #39A9DC;color: #FFF;" align=center>1</td>
        <td style="background-repeat: no-repeat;background-position: right center;background-color: #39A9DC;color: #FFF;" align=center></td>
        <td><font size="5" color=green>CubeMx</font></td>
      </tr>
      <tr align=center>
        <td align=left><p id="MRSUBG_802_15_4_Tx">MRSUBG_802_15_4_Tx</p></td>
        <td align=left>
This is a demo implementation of the standard 802.15.4 protocol.  
</td>
        <td style="background-repeat: no-repeat;background-position: right center;background-color: #39A9DC;color: #FFF;" align=center>1</td>
        <td style="background-repeat: no-repeat;background-position: right center;background-color: #39A9DC;color: #FFF;" align=center></td>
        <td><font size="5" color=green>CubeMx</font></td>
      </tr>
      <tr align=center>
        <td align=left><p id="MRSUBG_BasicGeneric_Rx">MRSUBG_BasicGeneric_Rx</p></td>
        <td align=left>
This example explains how to configure one node as a transmitter and the other as a receiver in order to perform a simple basic packet transmission.  
</td>
        <td style="background-repeat: no-repeat;background-position: right center;background-color: #39A9DC;color: #FFF;" align=center>1</td>
        <td style="background-repeat: no-repeat;background-position: right center;background-color: #39A9DC;color: #FFF;" align=center></td>
        <td><font size="5" color=green>CubeMx</font></td>
      </tr>
      <tr align=center>
        <td align=left><p id="MRSUBG_BasicGeneric_Tx">MRSUBG_BasicGeneric_Tx</p></td>
        <td align=left>
This example explains how to configure one node as a transmitter and the other as a receiver
in order to perform a simple basic packet transmission.  
</td>
        <td style="background-repeat: no-repeat;background-position: right center;background-color: #39A9DC;color: #FFF;" align=center>1</td>
        <td style="background-repeat: no-repeat;background-position: right center;background-color: #39A9DC;color: #FFF;" align=center></td>
        <td><font size="5" color=green>CubeMx</font></td>
      </tr>
      <tr align=center>
        <td align=left><p id="MRSUBG_Chat">MRSUBG_Chat</p></td>
        <td align=left>
This example explains how to configure a node both as a transmitter and as a receiver in order to perform a simple basic packet transmission.  
</td>
        <td style="background-repeat: no-repeat;background-position: right center;background-color: #39A9DC;color: #FFF;" align=center>1</td>
        <td style="background-repeat: no-repeat;background-position: right center;background-color: #39A9DC;color: #FFF;" align=center></td>
        <td><font size="5" color=green>CubeMx</font></td>
      </tr>
      <tr align=center>
        <td align=left><p id="MRSUBG_DatabufferHandler_Rx">MRSUBG_DatabufferHandler_Rx</p></td>
        <td align=left>
This example explains how to configure one node as a transmitter and the other as a receiver in order to perform a simple basic packet transmission.   
</td>
        <td style="background-repeat: no-repeat;background-position: right center;background-color: #39A9DC;color: #FFF;" align=center>1</td>
        <td style="background-repeat: no-repeat;background-position: right center;background-color: #39A9DC;color: #FFF;" align=center></td>
        <td><font size="5" color=green>CubeMx</font></td>
      </tr>
      <tr align=center>
        <td align=left><p id="MRSUBG_DatabufferHandler_Tx">MRSUBG_DatabufferHandler_Tx</p></td>
        <td align=left>
This example explains how to configure one node as a transmitter and the other as a receiver in order to perform a simple basic packet transmission.   
</td>
        <td style="background-repeat: no-repeat;background-position: right center;background-color: #39A9DC;color: #FFF;" align=center>1</td>
        <td style="background-repeat: no-repeat;background-position: right center;background-color: #39A9DC;color: #FFF;" align=center></td>
        <td><font size="5" color=green>CubeMx</font></td>
      </tr>
      <tr align=center>
        <td align=left><p id="MRSUBG_SequencerAutoAck_Rx">MRSUBG_SequencerAutoAck_Rx</p></td>
        <td align=left>
This example demonstrates how to use the STM32WL3 MRSUBG sequencer feature to automatically transmit and receive packet acknowledgements (ACKs).
</td>
        <td style="background-repeat: no-repeat;background-position: right center;background-color: #39A9DC;color: #FFF;" align=center>1</td>
        <td style="background-repeat: no-repeat;background-position: right center;background-color: #39A9DC;color: #FFF;" align=center></td>
        <td><font size="5" color=green>CubeMx</font></td>
      </tr>
      <tr align=center>
        <td align=left><p id="MRSUBG_SequencerAutoAck_Tx">MRSUBG_SequencerAutoAck_Tx</p></td>
        <td align=left>
This example demonstrates how to use the STM32WL3 MRSUBG sequencer feature to automatically transmit and receive packet acknowledgements (ACKs).
</td>
        <td style="background-repeat: no-repeat;background-position: right center;background-color: #39A9DC;color: #FFF;" align=center>1</td>
        <td style="background-repeat: no-repeat;background-position: right center;background-color: #39A9DC;color: #FFF;" align=center></td>
        <td><font size="5" color=green>CubeMx</font></td>
      </tr>
      <tr align=center>
        <td align=left><p id="MRSUBG_Skeleton">MRSUBG_Skeleton</p></td>
        <td align=left>
Code demonstrating the basic project structure template with initialization framework to be used for building a sub-1 GHz radio example application.
</td>
        <td style="background-repeat: no-repeat;background-position: right center;background-color: #39A9DC;color: #FFF;" align=center>1</td>
        <td style="background-repeat: no-repeat;background-position: right center;background-color: #39A9DC;color: #FFF;" align=center></td>
        <td><font size="5" color=green>CubeMx</font></td>
      </tr>
      <tr align=center>
        <td align=left><p id="MRSUBG_WMBusSTD_Rx">MRSUBG_WMBusSTD_Rx</p></td>
        <td align=left>
This is a demo implementation of the standard WMBUS protocol. It takes in account the physical and data link layers defined by the standard.   The example shows how to configure the packets in order to transmit or receive MBUS packets (format A only).
</td>
        <td style="background-repeat: no-repeat;background-position: right center;background-color: #39A9DC;color: #FFF;" align=center>1</td>
        <td style="background-repeat: no-repeat;background-position: right center;background-color: #39A9DC;color: #FFF;" align=center></td>
        <td><font size="5" color=green>CubeMx</font></td>
      </tr>
      <tr align=center>
        <td align=left><p id="MRSUBG_WMBusSTD_Tx">MRSUBG_WMBusSTD_Tx</p></td>
        <td align=left>
This is a demo implementation of the standard WMBUS protocol. It takes in account the physical and data link layers defined by the standard.   The example shows how to configure the packets in order to transmit or receive MBUS packets (format A only).
</td>
        <td style="background-repeat: no-repeat;background-position: right center;background-color: #39A9DC;color: #FFF;" align=center>1</td>
        <td style="background-repeat: no-repeat;background-position: right center;background-color: #39A9DC;color: #FFF;" align=center></td>
        <td><font size="5" color=green>CubeMx</font></td>
      </tr>
      <tr align=center>
        <td align=left rowspan=3><p id="PWR">PWR</p></td>
        <td align=left><p id="PWR_DEEPSTOP">PWR_DEEPSTOP</p></td>
        <td align=left>
How to enter the Deepstop mode and wake up from this mode by using an external reset or the WKUP pin.
</td>
        <td style="background-repeat: no-repeat;background-position: right center;background-color: #39A9DC;color: #FFF;" align=center>1</td>
        <td style="background-repeat: no-repeat;background-position: right center;background-color: #39A9DC;color: #FFF;" align=center></td>
        <td><font size="5" color=green>CubeMx</font></td>
      </tr>
      <tr align=center>
        <td align=left><p id="PWR_DEEPSTOP_RTC">PWR_DEEPSTOP_RTC</p></td>
        <td align=left>
How to enter the Deepstop mode and wake-up from this mode by using an external 
reset or the RTC wakeup timer.
</td>
        <td style="background-repeat: no-repeat;background-position: right center;background-color: #39A9DC;color: #FFF;" align=center>1</td>
        <td style="background-repeat: no-repeat;background-position: right center;background-color: #39A9DC;color: #FFF;" align=center></td>
        <td><font size="5" color=green>CubeMx</font></td>
      </tr>
      <tr align=center>
        <td align=left><p id="PWR_PVD">PWR_PVD</p></td>
        <td align=left>
How to configure the programmable voltage detector by using an external interrupt 
line. External DC supply must be used to supply Vdd.
</td>
        <td style="background-repeat: no-repeat;background-position: right center;background-color: #39A9DC;color: #FFF;" align=center>1</td>
        <td style="background-repeat: no-repeat;background-position: right center;background-color: #39A9DC;color: #FFF;" align=center></td>
        <td><font size="5" color=green>CubeMx</font></td>
      </tr>
      <tr align=center>
        <td align=left rowspan=3><p id="RCC">RCC</p></td>
        <td align=left><p id="RCC_ClockConfig">RCC_ClockConfig</p></td>
        <td align=left>
Configuration of the system clock (SYSCLK) and modification of the clock settings in Run mode, using the RCC HAL API.
</td>
        <td style="background-repeat: no-repeat;background-position: right center;background-color: #39A9DC;color: #FFF;" align=center>1</td>
        <td style="background-repeat: no-repeat;background-position: right center;background-color: #39A9DC;color: #FFF;" align=center></td>
        <td><font size="5" color=green>CubeMx</font></td>
      </tr>
      <tr align=center>
        <td align=left><p id="RCC_LSEConfig">RCC_LSEConfig</p></td>
        <td align=left>
Enabling/disabling of the low-speed external(LSE) RC oscillator (about 32 KHz) at run time, using the RCC HAL API.
</td>
        <td style="background-repeat: no-repeat;background-position: right center;background-color: #39A9DC;color: #FFF;" align=center>1</td>
        <td style="background-repeat: no-repeat;background-position: right center;background-color: #39A9DC;color: #FFF;" align=center></td>
        <td><font size="5" color=green>CubeMx</font></td>
      </tr>
      <tr align=center>
        <td align=left><p id="RCC_LSIConfig">RCC_LSIConfig</p></td>
        <td align=left>
How to enable/disable the low-speed internal (LSI) RC oscillator (about 32 KHz) at run time, using the RCC HAL API.
</td>
        <td style="background-repeat: no-repeat;background-position: right center;background-color: #39A9DC;color: #FFF;" align=center>1</td>
        <td style="background-repeat: no-repeat;background-position: right center;background-color: #39A9DC;color: #FFF;" align=center></td>
        <td><font size="5" color=green>CubeMx</font></td>
      </tr>
      <tr align=center>
        <td align=left rowspan=1><p id="RNG">RNG</p></td>
        <td align=left><p id="RNG_MultiRNG">RNG_MultiRNG</p></td>
        <td align=left>  
Configuration of the RNG using the HAL API. This example uses the RNG to generate 32-bit long random numbers.
</td>
        <td style="background-repeat: no-repeat;background-position: right center;background-color: #39A9DC;color: #FFF;" align=center>1</td>
        <td style="background-repeat: no-repeat;background-position: right center;background-color: #39A9DC;color: #FFF;" align=center></td>
        <td><font size="5" color=green>CubeMx</font></td>
      </tr>
      <tr align=center>
        <td align=left rowspan=2><p id="RTC">RTC</p></td>
        <td align=left><p id="RTC_Alarm">RTC_Alarm</p></td>
        <td align=left>
Configuration and generation of an RTC alarm using the RTC HAL API.
</td>
        <td style="background-repeat: no-repeat;background-position: right center;background-color: #39A9DC;color: #FFF;" align=center>1</td>
        <td style="background-repeat: no-repeat;background-position: right center;background-color: #39A9DC;color: #FFF;" align=center></td>
        <td><font size="5" color=green>CubeMx</font></td>
      </tr>
      <tr align=center>
        <td align=left><p id="RTC_Calendar">RTC_Calendar</p></td>
        <td align=left>
Configuration of the calendar using the RTC HAL API.
</td>
        <td style="background-repeat: no-repeat;background-position: right center;background-color: #39A9DC;color: #FFF;" align=center>1</td>
        <td style="background-repeat: no-repeat;background-position: right center;background-color: #39A9DC;color: #FFF;" align=center></td>
        <td><font size="5" color=green>CubeMx</font></td>
      </tr>
      <tr align=center>
        <td align=left rowspan=2><p id="SPI">SPI</p></td>
        <td align=left><p id="SPI_FullDuplex_ComDMA_Master">SPI_FullDuplex_ComDMA_Master</p></td>
        <td align=left>
Data buffer transmission/reception between two boards via SPI using DMA.
</td>
        <td style="background-repeat: no-repeat;background-position: right center;background-color: #39A9DC;color: #FFF;" align=center>1</td>
        <td style="background-repeat: no-repeat;background-position: right center;background-color: #39A9DC;color: #FFF;" align=center></td>
        <td><font size="5" color=green>CubeMx</font></td>
      </tr>
      <tr align=center>
        <td align=left><p id="SPI_FullDuplex_ComDMA_Slave">SPI_FullDuplex_ComDMA_Slave</p></td>
        <td align=left>
Data buffer transmission/reception between two boards via SPI using DMA.
</td>
        <td style="background-repeat: no-repeat;background-position: right center;background-color: #39A9DC;color: #FFF;" align=center>1</td>
        <td style="background-repeat: no-repeat;background-position: right center;background-color: #39A9DC;color: #FFF;" align=center></td>
        <td><font size="5" color=green>CubeMx</font></td>
      </tr>
      <tr align=center>
        <td align=left rowspan=2><p id="TIM">TIM</p></td>
        <td align=left><p id="TIM_InputCapture">TIM_InputCapture</p></td>
        <td align=left>
How to use the TIM peripheral to measure an external signal frequency.
</td>
        <td style="background-repeat: no-repeat;background-position: right center;background-color: #39A9DC;color: #FFF;" align=center>1</td>
        <td style="background-repeat: no-repeat;background-position: right center;background-color: #39A9DC;color: #FFF;" align=center></td>
        <td><font size="5" color=green>CubeMx</font></td>
      </tr>
      <tr align=center>
        <td align=left><p id="TIM_TimeBase">TIM_TimeBase</p></td>
        <td align=left>
This example shows how to configure the TIM peripheral to generate a time base of 
one second with the corresponding Interrupt request.
</td>
        <td style="background-repeat: no-repeat;background-position: right center;background-color: #39A9DC;color: #FFF;" align=center>1</td>
        <td style="background-repeat: no-repeat;background-position: right center;background-color: #39A9DC;color: #FFF;" align=center></td>
        <td><font size="5" color=green>CubeMx</font></td>
      </tr>
      <tr align=center>
        <td align=left rowspan=4><p id="UART">UART</p></td>
        <td align=left><p id="LPUART_TwoBoards_ComIT">LPUART_TwoBoards_ComIT</p></td>
        <td align=left>
LPUART transmission (transmit/receive) in Interrupt mode
between two boards.
</td>
        <td style="background-repeat: no-repeat;background-position: right center;background-color: #39A9DC;color: #FFF;" align=center>1</td>
        <td style="background-repeat: no-repeat;background-position: right center;background-color: #39A9DC;color: #FFF;" align=center></td>
        <td><font size="5" color=green>CubeMx</font></td>
      </tr>
      <tr align=center>
        <td align=left><p id="UART_HyperTerminal_DMA">UART_HyperTerminal_DMA</p></td>
        <td align=left>
UART transmission (transmit/receive) in DMA mode
between a board and an HyperTerminal PC application.
</td>
        <td style="background-repeat: no-repeat;background-position: right center;background-color: #39A9DC;color: #FFF;" align=center>1</td>
        <td style="background-repeat: no-repeat;background-position: right center;background-color: #39A9DC;color: #FFF;" align=center></td>
        <td><font size="5" color=green>CubeMx</font></td>
      </tr>
      <tr align=center>
        <td align=left><p id="UART_HyperTerminal_IT">UART_HyperTerminal_IT</p></td>
        <td align=left>
UART transmission (transmit/receive) in Interrupt mode between a board and
an HyperTerminal PC application.
</td>
        <td style="background-repeat: no-repeat;background-position: right center;background-color: #39A9DC;color: #FFF;" align=center>1</td>
        <td style="background-repeat: no-repeat;background-position: right center;background-color: #39A9DC;color: #FFF;" align=center></td>
        <td><font size="5" color=green>CubeMx</font></td>
      </tr>
      <tr align=center>
        <td align=left><p id="UART_Printf">UART_Printf</p></td>
        <td align=left>
Re-routing of the C library printf function to the UART.
</td>
        <td style="background-repeat: no-repeat;background-position: right center;background-color: #39A9DC;color: #FFF;" align=center>1</td>
        <td style="background-repeat: no-repeat;background-position: right center;background-color: #39A9DC;color: #FFF;" align=center></td>
        <td><font size="5" color=green>CubeMx</font></td>
      </tr>
      <tr align=center>
        <td align=left rowspan=1><p id="USART">USART</p></td>
        <td align=left><p id="USART_SlaveMode_DMA">USART_SlaveMode_DMA</p></td>
        <td align=left>
This example describes an USART-SPI communication (transmit/receive) with DMA between two
boards where the USART is configured as a slave.
</td>
        <td style="background-repeat: no-repeat;background-position: right center;background-color: #39A9DC;color: #FFF;" align=center>1</td>
        <td style="background-repeat: no-repeat;background-position: right center;background-color: #39A9DC;color: #FFF;" align=center></td>
        <td><font size="5" color=green>CubeMx</font></td>
      </tr>
      <tr style="background-repeat: no-repeat;background-position: right center;background-color: #39A9DC;color: #FFF;" align=center>
        <td colspan="3"><b>Total number of examples</b></td><td>57</td>
        <td>57</td>
        <td>57</td>
      </tr>
      <tr align=center>
        <td style="background-repeat: no-repeat;background-position: right center;background-color: #39A9DC;color: #FFF;" rowspan=18><p id="Examples_LL">Examples_LL</p></td>
        <td align=left rowspan=2><p id="COMP">COMP</p></td>
        <td align=left><p id="COMP_CompareGpioVsVrefInt_IT_Init">COMP_CompareGpioVsVrefInt_IT_Init</p></td>
        <td align=left>
How to use a comparator peripheral to compare a voltage level applied on
a GPIO pin to the internal voltage reference (VrefInt), in interrupt mode.
</td>
        <td style="background-repeat: no-repeat;background-position: right center;background-color: #39A9DC;color: #FFF;" align=center>1</td>
        <td style="background-repeat: no-repeat;background-position: right center;background-color: #39A9DC;color: #FFF;" align=center></td>
        <td><font size="5" color=green>CubeMx</font></td>
      </tr>
      <tr align=center>
        <td align=left><p id="COMP_CompareGpioVsVrefInt_OutputGpio_Init">COMP_CompareGpioVsVrefInt_OutputGpio_Init</p></td>
        <td align=left>
How to use a comparator peripheral to compare a voltage level applied on
a GPIO pin to the internal voltage reference (VrefInt)
with comparator output connected to a GPIO pin.
</td>
        <td style="background-repeat: no-repeat;background-position: right center;background-color: #39A9DC;color: #FFF;" align=center>1</td>
        <td style="background-repeat: no-repeat;background-position: right center;background-color: #39A9DC;color: #FFF;" align=center></td>
        <td><font size="5" color=green>CubeMx</font></td>
      </tr>
      <tr align=center>
        <td align=left rowspan=1><p id="CORTEX">CORTEX</p></td>
        <td align=left><p id="CORTEX_MPU">CORTEX_MPU</p></td>
        <td align=left>
Presentation of the MPU features. This example configures MPU attributes of different
MPU regions then configures a memory area as privileged read-only, and attempts to
perform read and write operations in different modes.
</td>
        <td style="background-repeat: no-repeat;background-position: right center;background-color: #39A9DC;color: #FFF;" align=center>1</td>
        <td style="background-repeat: no-repeat;background-position: right center;background-color: #39A9DC;color: #FFF;" align=center></td>
        <td><font size="5" color=green>CubeMx</font></td>
      </tr>
      <tr align=center>
        <td align=left rowspan=2><p id="DAC">DAC</p></td>
        <td align=left><p id="DAC_GenerateConstantSignal_TriggerSW_Init">DAC_GenerateConstantSignal_TriggerSW_Init</p></td>
        <td align=left>

How to use the DAC peripheral to generate a constant voltage signal. This
example is based on the STM32WL3x DAC LL API. The peripheral 
initialization uses LL unitary service functions for optimization purposes
(performance and size).
</td>
        <td style="background-repeat: no-repeat;background-position: right center;background-color: #39A9DC;color: #FFF;" align=center>1</td>
        <td style="background-repeat: no-repeat;background-position: right center;background-color: #39A9DC;color: #FFF;" align=center></td>
        <td><font size="5" color=green>CubeMx</font></td>
      </tr>
      <tr align=center>
        <td align=left><p id="DAC_GenerateWaveform_TriggerHW_Init">DAC_GenerateWaveform_TriggerHW_Init</p></td>
        <td align=left>
How to use the DAC peripheral to generate a voltage waveform from a digital data
stream transferred by DMA. This example is based on the STM32WL3x 
DAC LL API. The peripheral initialization uses LL initialization
functions to demonstrate LL init usage.
</td>
        <td style="background-repeat: no-repeat;background-position: right center;background-color: #39A9DC;color: #FFF;" align=center>1</td>
        <td style="background-repeat: no-repeat;background-position: right center;background-color: #39A9DC;color: #FFF;" align=center></td>
        <td><font size="5" color=green>CubeMx</font></td>
      </tr>
      <tr align=center>
        <td align=left rowspan=1><p id="GPIO">GPIO</p></td>
        <td align=left><p id="GPIO_InfiniteLedToggling_Init">GPIO_InfiniteLedToggling_Init</p></td>
        <td align=left>
How to configure and use GPIOs to toggle the on-board user LEDs
every 250 ms. This example is based on the STM32WL3x LL API. The peripheral
is initialized with LL initialization function to demonstrate LL init usage.
</td>
        <td style="background-repeat: no-repeat;background-position: right center;background-color: #39A9DC;color: #FFF;" align=center>1</td>
        <td style="background-repeat: no-repeat;background-position: right center;background-color: #39A9DC;color: #FFF;" align=center></td>
        <td><font size="5" color=green>CubeMx</font></td>
      </tr>
      <tr align=center>
        <td align=left rowspan=1><p id="IWDG">IWDG</p></td>
        <td align=left><p id="IWDG_RefreshUntilUserEvent_Init">IWDG_RefreshUntilUserEvent_Init</p></td>
        <td align=left>
How to configure the IWDG peripheral to ensure periodical counter update and
generate an MCU IWDG reset when a USER push-button is pressed. The peripheral
is initialized with LL unitary service functions to optimize
for performance and size.
</td>
        <td style="background-repeat: no-repeat;background-position: right center;background-color: #39A9DC;color: #FFF;" align=center>1</td>
        <td style="background-repeat: no-repeat;background-position: right center;background-color: #39A9DC;color: #FFF;" align=center></td>
        <td><font size="5" color=green>CubeMx</font></td>
      </tr>
      <tr align=center>
        <td align=left rowspan=1><p id="LCSC">LCSC</p></td>
        <td align=left><p id="LCSC_BasicDemo">LCSC_BasicDemo</p></td>
        <td align=left>
How to use an LC sensor controller (LCSC) peripheral to measure rotation of wheel.
</td>
        <td style="background-repeat: no-repeat;background-position: right center;background-color: #39A9DC;color: #FFF;" align=center>1</td>
        <td style="background-repeat: no-repeat;background-position: right center;background-color: #39A9DC;color: #FFF;" align=center></td>
        <td><font size="5" color=green>CubeMx</font></td>
      </tr>
      <tr align=center>
        <td align=left rowspan=1><p id="LPUART">LPUART</p></td>
        <td align=left><p id="LPUART_WakeUpFromDeepStop_Init">LPUART_WakeUpFromDeepStop_Init</p></td>
        <td align=left>
Configuration of GPIO and LPUART peripherals to allow characters
received on LPUART_RX pin to wake up the MCU from low-power mode. This example is based
on the LPUART LL API. The peripheral initialization uses LL
initialization function to demonstrate LL init usage.
</td>
        <td style="background-repeat: no-repeat;background-position: right center;background-color: #39A9DC;color: #FFF;" align=center>1</td>
        <td style="background-repeat: no-repeat;background-position: right center;background-color: #39A9DC;color: #FFF;" align=center></td>
        <td><font size="5" color=green>CubeMx</font></td>
      </tr>
      <tr align=center>
        <td align=left rowspan=1><p id="RNG">RNG</p></td>
        <td align=left><p id="RNG_GenerateRandomNumbers">RNG_GenerateRandomNumbers</p></td>
        <td align=left>
Configuration of the RNG to generate 16-bit long random numbers. The peripheral initialization uses LL unitary service
functions for optimization purposes (performance and size).
</td>
        <td style="background-repeat: no-repeat;background-position: right center;background-color: #39A9DC;color: #FFF;" align=center>1</td>
        <td style="background-repeat: no-repeat;background-position: right center;background-color: #39A9DC;color: #FFF;" align=center></td>
        <td><font size="5" color=green>CubeMx</font></td>
      </tr>
      <tr align=center>
        <td align=left rowspan=1><p id="RTC">RTC</p></td>
        <td align=left><p id="RTC_Alarm_Init">RTC_Alarm_Init</p></td>
        <td align=left>
Configuration of the RTC LL API to configure and generate an alarm using the RTC peripheral. The peripheral
initialization uses the LL initialization function.
</td>
        <td style="background-repeat: no-repeat;background-position: right center;background-color: #39A9DC;color: #FFF;" align=center>1</td>
        <td style="background-repeat: no-repeat;background-position: right center;background-color: #39A9DC;color: #FFF;" align=center></td>
        <td><font size="5" color=green>CubeMx</font></td>
      </tr>
      <tr align=center>
        <td align=left rowspan=1><p id="TIM">TIM</p></td>
        <td align=left><p id="TIM_PWMOutput_Init">TIM_PWMOutput_Init</p></td>
        <td align=left>
Use of a timer peripheral to generate a 
PWM output signal and update the PWM duty cycle. This example is based on the 
STM32Wl3x TIM LL API. The peripheral initialization uses 
LL initialization function to demonstrate LL Init.
</td>
        <td style="background-repeat: no-repeat;background-position: right center;background-color: #39A9DC;color: #FFF;" align=center>1</td>
        <td style="background-repeat: no-repeat;background-position: right center;background-color: #39A9DC;color: #FFF;" align=center></td>
        <td><font size="5" color=green>CubeMx</font></td>
      </tr>
      <tr align=center>
        <td align=left rowspan=3><p id="USART">USART</p></td>
        <td align=left><p id="USART_Communication_Rx_IT_Continuous_Init">USART_Communication_Rx_IT_Continuous_Init</p></td>
        <td align=left>
This example shows how to configure GPIO and USART peripheral for continuously receiving characters
from HyperTerminal (PC) in Asynchronous mode using Interrupt mode. Peripheral initialization is
done using LL unitary services functions for optimization purpose (performance and size).
</td>
        <td style="background-repeat: no-repeat;background-position: right center;background-color: #39A9DC;color: #FFF;" align=center>1</td>
        <td style="background-repeat: no-repeat;background-position: right center;background-color: #39A9DC;color: #FFF;" align=center></td>
        <td><font size="5" color=green>CubeMx</font></td>
      </tr>
      <tr align=center>
        <td align=left><p id="USART_Communication_TxRx_DMA_Init">USART_Communication_TxRx_DMA_Init</p></td>
        <td align=left>
This example shows how to configure GPIO and USART peripheral
to send characters asynchronously to/from an HyperTerminal (PC) in
DMA mode. This example is based on STM32WL3x USART LL API. Peripheral
initialization is done using LL unitary services functions for optimization
purpose (performance and size).
</td>
        <td style="background-repeat: no-repeat;background-position: right center;background-color: #39A9DC;color: #FFF;" align=center>1</td>
        <td style="background-repeat: no-repeat;background-position: right center;background-color: #39A9DC;color: #FFF;" align=center></td>
        <td><font size="5" color=green>CubeMx</font></td>
      </tr>
      <tr align=center>
        <td align=left><p id="USART_Communication_Tx_IT_Init">USART_Communication_Tx_IT_Init</p></td>
        <td align=left>
This example shows how to configure GPIO and USART peripheral to send characters
asynchronously to HyperTerminal (PC) in Interrupt mode. This example is based on
STM32WL3x USART LL API. Peripheral initialization is done using LL unitary services
functions for optimization purpose (performance and size).
</td>
        <td style="background-repeat: no-repeat;background-position: right center;background-color: #39A9DC;color: #FFF;" align=center>1</td>
        <td style="background-repeat: no-repeat;background-position: right center;background-color: #39A9DC;color: #FFF;" align=center></td>
        <td><font size="5" color=green>CubeMx</font></td>
      </tr>
      <tr align=center>
        <td align=left rowspan=2><p id="UTILS">UTILS</p></td>
        <td align=left><p id="UTILS_ConfigureSystemClock">UTILS_ConfigureSystemClock</p></td>
        <td align=left>
Use of UTILS LL API to configure the system clock using RC64MPLL with HSE as source clock.
</td>
        <td style="background-repeat: no-repeat;background-position: right center;background-color: #39A9DC;color: #FFF;" align=center>1</td>
        <td style="background-repeat: no-repeat;background-position: right center;background-color: #39A9DC;color: #FFF;" align=center></td>
        <td><font size="5" color=green>CubeMx</font></td>
      </tr>
      <tr align=center>
        <td align=left><p id="UTILS_ReadDeviceInfo">UTILS_ReadDeviceInfo</p></td>
        <td align=left>
This example reads the UID, Device ID and Revision ID and saves
them into a global information buffer.
</td>
        <td style="background-repeat: no-repeat;background-position: right center;background-color: #39A9DC;color: #FFF;" align=center>1</td>
        <td style="background-repeat: no-repeat;background-position: right center;background-color: #39A9DC;color: #FFF;" align=center></td>
        <td><font size="5" color=green>CubeMx</font></td>
      </tr>
      <tr style="background-repeat: no-repeat;background-position: right center;background-color: #39A9DC;color: #FFF;" align=center>
        <td colspan="3"><b>Total number of examples_ll</b></td><td>17</td>
        <td>17</td>
        <td>17</td>
      </tr>
      <tr align=center>
        <td style="background-repeat: no-repeat;background-position: right center;background-color: #39A9DC;color: #FFF;" rowspan=3><p id="Examples_MIX">Examples_MIX</p></td>
        <td align=left rowspan=2><p id="SPI">SPI</p></td>
        <td align=left><p id="SPI_FullDuplex_ComPolling_Master">SPI_FullDuplex_ComPolling_Master</p></td>
        <td align=left>
Data buffer transmission/reception between two boards via SPI using Polling mode.
</td>
        <td style="background-repeat: no-repeat;background-position: right center;background-color: #39A9DC;color: #FFF;" align=center>1</td>
        <td style="background-repeat: no-repeat;background-position: right center;background-color: #39A9DC;color: #FFF;" align=center></td>
        <td><font size="5" color=green>CubeMx</font></td>
      </tr>
      <tr align=center>
        <td align=left><p id="SPI_FullDuplex_ComPolling_Slave">SPI_FullDuplex_ComPolling_Slave</p></td>
        <td align=left>
Data buffer transmission/reception between two boards via SPI using Polling mode.
</td>
        <td style="background-repeat: no-repeat;background-position: right center;background-color: #39A9DC;color: #FFF;" align=center>1</td>
        <td style="background-repeat: no-repeat;background-position: right center;background-color: #39A9DC;color: #FFF;" align=center></td>
        <td><font size="5" color=green>CubeMx</font></td>
      </tr>
      <tr style="background-repeat: no-repeat;background-position: right center;background-color: #39A9DC;color: #FFF;" align=center>
        <td colspan="3"><b>Total number of examples_mix</b></td><td>2</td>
        <td>2</td>
        <td>2</td>
      </tr>
      <tr align=center>
        <td style="background-repeat: no-repeat;background-position: right center;background-color: #39A9DC;color: #FFF;" rowspan=9><p id="Applications">Applications</p></td>
        <td align=left rowspan=1><p id="FreeRTOS">FreeRTOS</p></td>
        <td align=left><p id="FreeRTOS_Mutex">FreeRTOS_Mutex</p></td>
        <td align=left>
This application demonstrates the use of mutexes to serialize access to a shared resource.
</td>
        <td style="background-repeat: no-repeat;background-position: right center;background-color: #39A9DC;color: #FFF;" align=center>1</td>
        <td style="background-repeat: no-repeat;background-position: right center;background-color: #39A9DC;color: #FFF;" align=center></td>
        <td><font size="5" color=green>CubeMx</font></td>
      </tr>
      <tr align=center>
        <td align=left rowspan=3><p id="Sigfox">Sigfox</p></td>
        <td align=left><p id="Sigfox_CLI">Sigfox_CLI</p></td>
        <td align=left>
This application demonstrates how to evaluate the STM32WL33 Sigfox device radio capabilities.  
</td>
        <td style="background-repeat: no-repeat;background-position: right center;background-color: #39A9DC;color: #FFF;" align=center>1</td>
        <td style="background-repeat: no-repeat;background-position: right center;background-color: #39A9DC;color: #FFF;" align=center></td>
        <td><font size="5" color=green>CubeMx</font></td>
      </tr>
      <tr align=center>
        <td align=left><p id="Sigfox_PushButton">Sigfox_PushButton</p></td>
        <td align=left>
This application allows to evaluate the STM32WL33 Sigfox device radio capabilities.
</td>
        <td style="background-repeat: no-repeat;background-position: right center;background-color: #39A9DC;color: #FFF;" align=center>1</td>
        <td style="background-repeat: no-repeat;background-position: right center;background-color: #39A9DC;color: #FFF;" align=center></td>
        <td><font size="5" color=green>CubeMx</font></td>
      </tr>
      <tr align=center>
        <td align=left><p id="Sigfox_Skeleton">Sigfox_Skeleton</p></td>
        <td align=left>
This application allows to evaluate the STM32WL33 Sigfox device radio capabilities.  
</td>
        <td style="background-repeat: no-repeat;background-position: right center;background-color: #39A9DC;color: #FFF;" align=center>1</td>
        <td style="background-repeat: no-repeat;background-position: right center;background-color: #39A9DC;color: #FFF;" align=center></td>
        <td><font size="5" color=green>CubeMx</font></td>
      </tr>
      <tr align=center>
        <td align=left rowspan=4><p id="WmBus">WmBus</p></td>
        <td align=left><p id="WmBus_Phy_Concentrator">WmBus_Phy_Concentrator</p></td>
        <td align=left>
This application allows to evaluate the STM32WL33 WmBus Phy device radio capabilities as Concentrator.
</td>
        <td style="background-repeat: no-repeat;background-position: right center;background-color: #39A9DC;color: #FFF;" align=center>1</td>
        <td style="background-repeat: no-repeat;background-position: right center;background-color: #39A9DC;color: #FFF;" align=center></td>
        <td><font size="5" color=green>X</font></td>
      </tr>
      <tr align=center>
        <td align=left><p id="WmBus_Phy_Meter">WmBus_Phy_Meter</p></td>
        <td align=left>
This application allows to evaluate the STM32WL33 WmBus Phy device radio capabilities as Meter.
</td>
        <td style="background-repeat: no-repeat;background-position: right center;background-color: #39A9DC;color: #FFF;" align=center>1</td>
        <td style="background-repeat: no-repeat;background-position: right center;background-color: #39A9DC;color: #FFF;" align=center></td>
        <td><font size="5" color=green>X</font></td>
      </tr>
      <tr align=center>
        <td align=left><p id="WmBus_Phy_Meter_Button">WmBus_Phy_Meter_Button</p></td>
        <td align=left>
This application allows to evaluate the STM32WL33 WmBus Phy device radio capabilities as Meter transmitting a WmBus packet each time the Button B2 is pressed.
</td>
        <td style="background-repeat: no-repeat;background-position: right center;background-color: #39A9DC;color: #FFF;" align=center>1</td>
        <td style="background-repeat: no-repeat;background-position: right center;background-color: #39A9DC;color: #FFF;" align=center></td>
        <td><font size="5" color=green>X</font></td>
      </tr>
      <tr align=center>
        <td align=left><p id="WmBus_Phy_Meter_RadioTimer">WmBus_Phy_Meter_RadioTimer</p></td>
        <td align=left>
This application allows to evaluate the STM32WL33 WmBus Phy device radio capabilities as Meter transmitting a WmBus packet each time a Radio Timer expires.
</td>
        <td style="background-repeat: no-repeat;background-position: right center;background-color: #39A9DC;color: #FFF;" align=center>1</td>
        <td style="background-repeat: no-repeat;background-position: right center;background-color: #39A9DC;color: #FFF;" align=center></td>
        <td><font size="5" color=green>X</font></td>
      </tr>
      <tr style="background-repeat: no-repeat;background-position: right center;background-color: #39A9DC;color: #FFF;" align=center>
        <td colspan="3"><b>Total number of applications</b></td><td>8</td>
        <td>8</td>
        <td>8</td>
      </tr>
      <tr align=center>
        <td style="background-repeat: no-repeat;background-position: right center;background-color: #39A9DC;color: #FFF;" rowspan=9><p id="Demonstrations">Demonstrations</p></td>
        <td align=left rowspan=1><p id="Command_Line_Interface">Command_Line_Interface</p></td>
        <td align=left><p id="CLI">CLI</p></td>
        <td align=left>
The STM32WL3 CLI demo application allows to use the STM32WL3 WiSE-RadioExplorer PC application by simply connecting a STM32WL3 development kit to PC USB port.
</td>
        <td style="background-repeat: no-repeat;background-position: right center;background-color: #39A9DC;color: #FFF;" align=center>1</td>
        <td style="background-repeat: no-repeat;background-position: right center;background-color: #39A9DC;color: #FFF;" align=center></td>
        <td><font size="5" color=green>X</font></td>
      </tr>
      <tr align=center>
        <td align=left rowspan=2><p id="LPAWUR">LPAWUR</p></td>
        <td align=left><p id="LPAWUR_Skeleton">LPAWUR_Skeleton</p></td>
        <td align=left>
Code demonstrating the basic project structure template with initialization framework to be used for building a LPAWUR radio demonstration application.
</td>
        <td style="background-repeat: no-repeat;background-position: right center;background-color: #39A9DC;color: #FFF;" align=center>1</td>
        <td style="background-repeat: no-repeat;background-position: right center;background-color: #39A9DC;color: #FFF;" align=center></td>
        <td><font size="5" color=green>X</font></td>
      </tr>
      <tr align=center>
        <td align=left><p id="LPAWUR_WakeupRadio_Rx">LPAWUR_WakeupRadio_Rx</p></td>
        <td align=left>
This example shows how to set the SoC in deepstop and configure the LPAWUR to wakeup the SOC when a frame arrives and it is correctly receveid. This example demonstrates the receiver side and requires another device as a transmitter. The transmitter example is located under the NUCLEO-WL33CC1\Demonstrations\MRSUBG\MRSUBG_WakeupRadio_Tx folder.
</td>
        <td style="background-repeat: no-repeat;background-position: right center;background-color: #39A9DC;color: #FFF;" align=center>1</td>
        <td style="background-repeat: no-repeat;background-position: right center;background-color: #39A9DC;color: #FFF;" align=center></td>
        <td><font size="5" color=green>X</font></td>
      </tr>
      <tr align=center>
        <td align=left rowspan=5><p id="MRSUBG">MRSUBG</p></td>
        <td align=left><p id="MRSUBG_RTC_Button_Tx">MRSUBG_RTC_Button_Tx</p></td>
        <td align=left>
This example shows how to set the SoC in deepstop and configure the MRSUBG to wakeup the SOC pressing PB2 to send a frame or after the RTC timer expiration.   
</td>
        <td style="background-repeat: no-repeat;background-position: right center;background-color: #39A9DC;color: #FFF;" align=center>1</td>
        <td style="background-repeat: no-repeat;background-position: right center;background-color: #39A9DC;color: #FFF;" align=center></td>
        <td><font size="5" color=green>X</font></td>
      </tr>
      <tr align=center>
        <td align=left><p id="MRSUBG_Sequencer_Sniff">MRSUBG_Sequencer_Sniff</p></td>
        <td align=left>
This example shows how to set the Sequencer to operate in sniff mode. This example demonstrates the receiver side and requires another device as a TX. 
</td>
        <td style="background-repeat: no-repeat;background-position: right center;background-color: #39A9DC;color: #FFF;" align=center>1</td>
        <td style="background-repeat: no-repeat;background-position: right center;background-color: #39A9DC;color: #FFF;" align=center></td>
        <td><font size="5" color=green>X</font></td>
      </tr>
      <tr align=center>
        <td align=left><p id="MRSUBG_Skeleton">MRSUBG_Skeleton</p></td>
        <td align=left>
Code demonstrating the basic project structure template with initialization framework to be used for building a sub-1 GHz radio demonstration application.
</td>
        <td style="background-repeat: no-repeat;background-position: right center;background-color: #39A9DC;color: #FFF;" align=center>1</td>
        <td style="background-repeat: no-repeat;background-position: right center;background-color: #39A9DC;color: #FFF;" align=center></td>
        <td><font size="5" color=green>X</font></td>
      </tr>
      <tr align=center>
        <td align=left><p id="MRSUBG_Timer">MRSUBG_Timer</p></td>
        <td align=left>
This example shows how to program the MRSUBG embedded timer. 
</td>
        <td style="background-repeat: no-repeat;background-position: right center;background-color: #39A9DC;color: #FFF;" align=center>1</td>
        <td style="background-repeat: no-repeat;background-position: right center;background-color: #39A9DC;color: #FFF;" align=center></td>
        <td><font size="5" color=green>X</font></td>
      </tr>
      <tr align=center>
        <td align=left><p id="MRSUBG_WakeupRadio_Tx">MRSUBG_WakeupRadio_Tx</p></td>
        <td align=left>
This example explains shows how to set the SoC in deepstop and configure the MRSUBG to wakeup the SOC pressing PB2 to send a frame.  
</td>
        <td style="background-repeat: no-repeat;background-position: right center;background-color: #39A9DC;color: #FFF;" align=center>1</td>
        <td style="background-repeat: no-repeat;background-position: right center;background-color: #39A9DC;color: #FFF;" align=center></td>
        <td><font size="5" color=green>X</font></td>
      </tr>
      <tr style="background-repeat: no-repeat;background-position: right center;background-color: #39A9DC;color: #FFF;" align=center>
        <td colspan="3"><b>Total number of demonstrations</b></td><td>8</td>
        <td>8</td>
        <td>8</td>
      </tr>
      <tr style="background-repeat: no-repeat;background-position: right center;background-color: #39A9DC;color: #FFF;" align=center>
      	<td colspan="4"><b>Total number of projects</b></td><td>94</td>
          <td>94</td>
      	<td>94</td>
      </tr>
    </table>
  </body>
</html>
